<?
/*----------------------------------------------------------------------
          (C) Bobtail-Bear 2006 	小飞熊新一代下载系统
          	代码编写：小飞熊	版权所有：小飞熊[L.F.Bear]
				官方网站/技术支持：http://www.lfbear.cn
------------------------------------------------------------------------
          (C) Bobtail-Bear 2006 	L.F.Bear's New Download Sysytem
          	Powered by L.F.Bear  Copyright L.F.Bear's Home(R)
               Official Web/Support：http://www.lfbear.cn
-----------------------------------------------------------------------*/

//本页脚本功能：缓存管理
$thispage="rebuild.php";
@set_time_limit(120);
echo ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");

require("../function.php");
require("../include/config.inc.php");
require("check.php");

if ($_COOKIE[status]=="login" && $_SESSION[login]=="yes")
{
$yourname=$_COOKIE[yourname];
$level=$_SESSION[level];
if(!checklevel($level,"advance"))
	{$msg_title="系统信息：权限不足";
	$msg_link="login.php";
	$msg="您无法进行此项管理操作！<br><br>原因：您所在的用户组没有该权限。<br><br>";
	weblog("友情链接","无权限操作，被系统拦截！","red",$yourname,"触发页面：link.php");
	require("error.php");
	die;}
echo ("<body bgcolor=\"#DDF1FF\">");
$action=$_GET[action];
switch($action)
{
case reset:
echo("初始化数据库报告信息：<br><font color=red><br>");
echo (" >>>>> 正在准备初始化所有数据库…<br>");
echo (" >>>>> 请务必确保data文件夹可以进行读写操作…<br>");
//清除list缓存文件
$del_soft_num=readf("../".$path_soft."/number");
$del_file_soft_num=ceil($del_soft_num);
for($del_i=1;$del_i<=$del_file_soft_num;$del_i++)
@unlink("../cache/soft_list_".$del_i.".php");

$del_news_num=readf("../".$path_news."/number");
$del_file_news_num=ceil($del_news_num);
for($del_j=1;$del_j<=$del_file_news_num;$del_j++)
@unlink("../cache/news_list_".$del_j.".php");

//删除软件
$handle_soft=opendir("../".$path_soft);
$delnum_soft=-1;
while ($file = readdir($handle_soft))
{if ($file!="." && $file!=".." && $file!="click" && $file!="index.htm") {unlink("../".$path_soft."/".$file);$delnum_soft++;}}
closedir($handle_soft); 
echo (" >>>>> $delnum_soft 个软件数据文件删除完毕…<br>");

//删除click记录
$handle_click=opendir("../".$path_soft."/click");
while ($file = readdir($handle_click))
{if ($file!="." && $file!="..")
unlink("../".$path_soft."/click/".$file);}
closedir($handle_click); 
echo (" >>>>> 软件下载记录数据删除完毕…<br>");
//删除文章
$handle_news=opendir("../".$path_news);
$delnum_news=-1;
while ($file = readdir($handle_news))
{if ($file!="." && $file!=".." && $file!="click" && $file!="index.htm") {unlink("../".$path_news."/".$file);$delnum_news++;}}
closedir($handle_news); 
echo (" >>>>> $delnum_news 个文章数据文件删除完毕…<br>");
//删除click记录
$handle_click_news=opendir("../".$path_news."/click");
while ($file_news = readdir($handle_click_news))
{if ($file_news!="." && $file_news!="..")
unlink("../".$path_news."/click/".$file_news);}
closedir($handle_click_news); 
echo (" >>>>> 文章浏览记录数据删除完毕…<br>");
//删除用户
$handle_user=opendir("../".$path_user);
$delnum_user=-1;
while ($file = readdir($handle_user))
{if ($file!="." && $file!=".." && $file!="index.htm") {unlink("../".$path_user."/".$file);$delnum_user++;}}
closedir($handle_user); 
echo (" >>>>> $delnum_user 个用户数据文件删除完毕…<br>");
writef("../".$path_user."/number","1","w");
writef("../".$path_news."/number","0","w");
writef("../".$path_soft."/number","0","w");
writef("../".$path_soft."/wl-list","","w");
$user_de_info1="<? die;?>|admin|21232f297a57a5a743894a0e4a801fc3|1|500|100";
$user_de_info2="<? die;?>|admin@domain.com|0|||http://|这家伙很懒，什么东东都没留下…|";
writef("../".$path_user."/admin.php",$user_de_info1,"w");
writef("../".$path_user."/admin.dat",$user_de_info2,"w");

writef("../include/class.php","","w");
writef("../include/subclass.php","","w");
echo (" >>>>> 软件分类数据清空完毕…<br>");

writef("../include/weblog_operate.php","<? die(\"Forbidden Access!\");?>","w");
writef("../include/weblog_login.php","<? die(\"Forbidden Access!\");?>","w");
echo (" >>>>> 全部日志文件清空完毕…<br>");

writef("../cache/recommend.php","","w");
writef("../cache/top_soft.php","","w");
writef("../cache/top_news.php","","w");
@unlink("../cache/newsoft.php");
@unlink("../cache/newsoft.tim");
@unlink("../cache/newart.php");
@unlink("../cache/newart.tim");


echo (" >>>>> 首页缓存文件清空完毕…<br>");

writef("../".$path_soft."/number","0","w");
writef("../".$path_news."/number","0","w");
echo (" >>>>> 初始化数据文件建立完毕…超管默认用户名密码均为admin<br>");
weblog("缓存管理","数据库成功初始化","green",$yourname,"触发页面：rebuild.php");
echo ("<br><br> >>>>> <a href=rebuild.php title=\"如果不能自动跳转请点击这里\">系统数据初始化完成，正在自动返回中…</a></font>");
//echo("<Meta http-equiv='Refresh' Content='5; Url=rebuild.php'>");

break;

case soft_list:
$step=$_GET[step];
if($step=="")$step=1;
echo ("该过程视软件数量而定需要一定时间，中途请不要刷新或者关闭该页，程序完成后会自动返回。<br><br>");
$soft_num=readf("../".$path_soft."/number");
$onetime=100;//每个列表页软件数目
$b_num=($step-1)*$onetime+1;
$e_num=$step*$onetime;
if($e_num>=$soft_num) {$e_num=$soft_num;$over=1;} else $over=0;
unset($list_info);
for($i=$b_num;$i<=$e_num;$i++)
{
unset($temp);unset($tempy);
$temp=readf("../".$path_soft."/".$i.".php");
$tempy=readf("../".$path_soft."/".$i.".kwd");
$temp=explode("|",$temp);
$tempy=explode("|",$tempy);
if(!file_exists("../".$path_soft."/".$i.".dat")) $list_info.="\n";
else
$list_info.=$i."|".$temp[1]."|".$temp[3]."|".$temp[2]."|".$temp[6]."|".$temp[7]."|".$temp[5]."|".$tempy[1]."\n";

}
writef("../cache/soft_list_".$step.".php",$list_info,"w");
echo ("<font color=red><br> >>>>> 第".$b_num."－".$e_num."号软件已经成功生成新列表文件：cache/soft_list_".$step.".php");
if($over==0) 
{
$step++;
echo ("<br><br> >>>>> <a href=rebuild.php?action=soft_list&step=$step title=\"如果不能自动跳转请点击这里\">正在准备第 $step 号列表的生成…</font></a>");
echo("<Meta http-equiv='Refresh' Content='3; Url=rebuild.php?action=soft_list&step=$step'>");
}
else
{
weblog("缓存管理","软件列表重建完毕！","green",$yourname,"触发页面：rebuild.php");
echo ("<br><br> >>>>> <a href=rebuild.php title=\"如果不能自动跳转请点击这里\">重建软件列表全部完成，正在自动返回中…</a></font>");
echo("<Meta http-equiv='Refresh' Content='2; Url=rebuild.php'>");
}

break;


case news_list:
$step=$_GET[step];
if($step=="")$step=1;
echo ("该过程视文章数量而定需要一定时间，中途请不要刷新或者关闭该页，程序完成后会自动返回。<br><br>");
$news_num=readf("../".$path_news."/number");
$onetime=100;//每个列表页文章数目
$b_num=($step-1)*$onetime+1;
$e_num=$step*$onetime;
if($e_num>=$news_num) {$e_num=$news_num;$over=1;} else $over=0;
unset($list_info);
for($i=$b_num;$i<=$e_num;$i++)
{
unset($temp);unset($tempy);
$temp=readf("../".$path_news."/".$i.".php");
$temp=explode("|",$temp);
$list_info.=$i."|".$temp[1]."|".$temp[2]."|".$temp[3]."|".$temp[4]."|".$temp[5]."\n";
}
writef("../cache/news_list_".$step.".php",$list_info,"w");
echo ("<font color=red><br> >>>>> 第".$b_num."－".$e_num."号文章已经成功生成新列表文件：cache/news_list_".$step.".php");
if($over==0) 
{
$step++;
echo ("<br><br> >>>>> <a href=rebuild.php?action=news_list&step=$step title=\"如果不能自动跳转请点击这里\">正在准备第 $step 号列表的生成…</font></a>");
echo("<Meta http-equiv='Refresh' Content='3; Url=rebuild.php?action=news_list&step=$step'>");
}
else
{
weblog("缓存管理","文章列表重建完毕！","green",$yourname,"触发页面：rebuild.php");
echo ("<br><br> >>>>> <a href=rebuild.php title=\"如果不能自动跳转请点击这里\">重建文章列表全部完成，正在自动返回中…</a></font>");
echo("<Meta http-equiv='Refresh' Content='2; Url=rebuild.php'>");
}

break;
/*
case top10:
$soft_num=readf("../".$path_soft."/number");
unset($dnt);
for($fn=1;$fn<=$soft_num;$fn++)
{
if(!file_exists("../".$path_soft."/click/".$fn.".dnt")) $dnt[$fn]=0;
else $dnt[$fn]=readf("../".$path_soft."/click/".$fn.".dnt");
}
arsort($dnt);
unset($newitem);
$l=0;
for(reset($dnt);$key=key($dnt);next($dnt))
{
$l++;
if($l>11) break;
if($dnt[$key]==0) break;
unset($tempx);
$tempx=readf("../".$path_soft."/".$key.".dat");
$tempx=explode("|",$tempx);
$newitem.=$key."|".$tempx[3]."|".$tempx[2]."|".$tempx[6]."|".$tempx[7]."|".$tempx[5]."\n";
}
writef("../cache/top_soft.php",$newitem,"w");

$news_num=readf("../".$path_news."/number");
unset($dnt_news);
for($fn_news=1;$fn_news<=$news_num;$fn_news++)
{
if(!file_exists("../".$path_news."/click/".$fn_news.".brt")) $dnt_news[$fn_news]=0;
else $dnt_news[$fn_news]=readf("../".$path_news."/click/".$fn_news.".brt");
}
arsort($dnt_news);
unset($newitem_news);
$l=0;
for(reset($dnt_news);$key_news=key($dnt_news);next($dnt_news))
{
$l++;
if($l>11) break;
if($dnt_news[$key_news]==0) break;
unset($tempx);
$tempx=readf("../".$path_news."/".$key_news.".php");
$tempx=explode("|",$tempx);
$newitem_news.=$key_news."|".$tempx[3]."|".$tempx[2]."|".$tempx[4]."|".$tempx[5]."\n";
}
writef("../cache/top_news.php",$newitem_news,"w");





weblog("缓存管理","首页软件/文章TOP10成功刷新！","green",$yourname,"触发页面：rebuild.php");


break;
*/
case update:
print <<<EOT
<style type="text/css">
<!--
.STYLE1 {color: #FF0000}
.STYLE2 {font-size: 14px}
.STYLE3 {font-size: 12px; }
.STYLE4 {color: #3366FF}
-->
</style><br>
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><span class="STYLE2"><span class="STYLE4">一、欢迎使用数据库升级子程序，请务必详细阅读以下说明：</span><br />
        <br />
        <span class="STYLE1">1、本程序仅供升级 &lt;小飞熊下载系统2.x&gt; 至 &lt;Bobtail-Bear 2006&gt;(目前系统) 的数据升级。</span>(小飞熊下载系统系小飞熊工作室过去开发的下载系统，而Bobtail-Bear 2006为小飞熊目前开发的下载系统。这两套下载系统没有任何关系，小飞熊下载系统已经停止了开发与技术支持，因此特别给我们的老用户提供升级到新系统的条件。) <br />
        <br />
2、本次升级前请保证目前使用的Bobtail-Bear 2006没有任何数据(原始数据除外)。<span class="STYLE1">升级程序将会把目前系统的所有数据清空，并且用待升级数据覆盖。</span><br />
<br />
3、本次升级内容：原系统(即小飞熊下载系统2.x)的所有用户数据文件和软件数据文件。软件数据文件中不包括最近更新，软件下载排行，精品推荐以及常用工具中的列表信息。<br />
<br />
<span class="STYLE4">二、按照下面的操作说明，开始着手准备工作：</span><br />
<br />
1、将原系统(即小飞熊下载系统2.x)的data目录(包括其中的子目录data,user以及全部文件)复制到新系统下。<br />
<br />
2、[选做]为了安全起见，您可以手工备份目前系统(Bobtail-Bear 2006)中的如下数据：data文件夹(包含其子文件夹和文件)、include文件夹中的class.php,subclass.php,soft_list_*.php(*代表数字)文件。<br />
<br />
<span class="STYLE4">三、请您仔细填写下面的项目，确认无误后再开始升级。</span> </span><hr></td>
  </tr>
</table>


<form name="form1" method="post" action="rebuild.php?action=update1">
  <table width="700" border="1" align="center" cellpadding="3" cellspacing="1" bordercolor="#0099FF">
    <tr>
      <td width="350" class="STYLE3">原系统data文件夹存放位置：
      <input name="path" type="text" id="path" value="/"></td>
      <td width="350" class="STYLE3">例如：data文件夹放在了系统根目录下，就填写&quot;/&quot;;<br>
        data文件夹放在系统的include目录下，就填写&quot;/include/&quot;</td>
    </tr>
    <tr>
      <td class="STYLE3">原系统中软件id的最大数值：
      <input name="soft_max" type="text" id="soft_max"></td>
      <td class="STYLE3">即原data/data文件夹中*.php中*的最大值(*代表数字)</td>
    </tr>
    <tr>
      <td class="STYLE3">每次转换软件数目：<span class="STYLE3">
        <input name="once" type="text" id="once" value="50">
      </span></td>
      <td class="STYLE3">根据服务器性能填写，推荐每次50个</td>
    </tr>
    <tr>
      <td class="STYLE3">软件生存期：
      
           <select name="t_limit" id="t_limit">
        <option value="0">不限期(不推荐)</option>
        <option value="180">半年</option>
        <option value="365" selected="selected">一年</option>
        <option value="730">二年</option>
        <option value="1095">三年</option>
      </select>
      </td>
      <td class="STYLE3">软件从发布日起超过该日期将自动变为过期，会停止下载。</td>
    </tr>
    <tr>
      <td><span class="STYLE3">管理员用户名：
          <input name="user_max" type="text" id="user_max" value="admin">
      </span></td>
      <td><span class="STYLE3">即原系统中超级管理员的用户名，默认是admin</span></td>
    </tr>
    <tr>
      <td colspan="2" align="center"><input type="submit" name="Submit" value="确定升级">&nbsp;&nbsp;
      <input type="reset" name="Submit2" value="重新填写"></td>
    </tr>
  </table>
</form>

EOT;
require("footer.php");
break;
case update1:

$up_path="..".$_POST[path];
$soft_num=$_POST[soft_max];
$user_admin=$_POST[user_max];
$once=$_POST[once];
$t_limit=$_POST[t_limit];

$test_file=$up_path."data/data/1.php";
$op=@fopen($test_file,"r");
if(!$op) die("<font color=red>严重错误！data目录不可读入。</font><br><br>检查：目录是否填写正确；unix/linux上是否将data文件夹设置为777。<br><br>确认设置好了，点击<a href=rebuild.php?action=update>这里</a>重新开始升级。");
fclose($op);
echo("升级报告信息：<br><font color=red><br> >>>>> data目录可读性测试通过…<br>");
echo(" >>>>> 预先设置数据传送 soft_max = $soft_num ；user_admin = $user_admin …<br>");
if ($soft_num<=0 || $once<=0)
{
echo(">>>>> 检查数据时发现数据错误，请返回重新核对…<br>");
echo("</font><br><a href=rebuild.php?action=update><<< 返回转换设置</a><br>");
}
else
{
$soft_time=ceil($soft_num/$once);
echo(" >>>>> 每次转换软件数目：$once 程序将进行 $soft_time 次循环转换…<br>");
$up_info=<<<config
<?
//升级数据库临时文件，如果已经升级完毕可以删除该文件。
\$up_path="$up_path";
\$soft_num="$soft_num";
\$user_admin="$user_admin";
\$once="$once";
\$t_limit="$t_limit";
?>
config;

writef("update2.x.php",$up_info,"w");
echo("</font><br><a href=rebuild.php?action=update><<< 返回转换设置</a> &nbsp;&nbsp;&nbsp;&nbsp;<a href=rebuild.php?action=update2>进入转换第二步>>></a><br>");
}
break;
//update2 转换软件数据部分
case update2:

$step=$_GET[step];
require("update2.x.php");
if($step=="") $step=1;
$begin_num=($step-1)*$once+1;
$end_num=$step*$once;
if($end_num>=$soft_num) {$end_num=$soft_num;$over=1;}else $over=0;
echo("软件数据转换报告信息：<br><font color=red><br>");
echo(" >>>>> 正在做第 $step 次数据转换…  开始ID:$begin_num <br>");
echo(" >>>>> 请您耐心等待，不得在该过程中关闭浏览器！ <br>");
for($i=$begin_num;$i<=$end_num;$i++)
{
unset($file);unset($temp_data);unset($temp);unset($new_info);
$file=$up_path."data/data/".$i.".php";
$temp_data=@file($file);
$temp=explode("|",$temp_data[1]);
//for ($k=0;$k<=20;$k++) echo ("<br>  $temp[$k] ");
if ($temp[2]=="") {$temp[2]="无此软件";$temp[20]="数据库升级导致该错误，请管理员尽快解决此问题。";$isopen=0;}else $isopen=1;
$test=strrchr($temp[3],".");
switch($test)
{
case ".rar":
$file_type="RAR";
break;
case ".zip":
$file_type="ZIP";
break;
case ".exe":
$file_type="EXE";
break;
default:
$file_type="未知";
break;
}
if (strstr($temp[13],"KB")) {$size_a=explode("KB",$temp[13]);$size_b="KB";}
if (strstr($temp[13],"MB")) {$size_a=explode("MB",$temp[13]);$size_b="MB";}
if (strstr($temp[13],"GB")) {$size_a=explode("GB",$temp[13]);$size_b="GB";}

if($temp[10]=="预览图片" || $temp[10]=="界面预览") $yl=1; else $yl=2;
if($temp[9]=="images/nopic.gif") $temp[9]="images/nopic.jpg";
if($temp[11]=="无" || $temp[11]=="http://") {$com_name=0;$temp[11]=0;} else $com_name="点击进入";
if($temp[5]=="") $down_2=0;else $down_2=1;
if($temp[7]=="") $down_3=0;else $down_3=1;

$new_info="<? die(); ?>|".$isopen."|".$t_limit."|".$temp[2]."|未知|".$temp[12]."|".$temp[0]."|".$temp[1]."|".$size_a[0]."|".$size_b."|".$file_type."|简体中文|".$temp[19]."|".$temp[14]."|".$temp[15]."|".$yl."|".$temp[9]."|0|0|".$com_name."|".$temp[11]."|0|0|".$temp[20]."|0|".$temp[4]."|".$temp[3]."|0|".$down_2."|".$temp[6]."|".$temp[5]."|0|".$down_3."|".$temp[8]."|".$temp[7]."|0|0||http://|0|0||http://|0|0|0||";
//echo $new_info;

$new_info=explode("\n",$new_info);
$new_info=implode("",$new_info);

writef("../".$path_soft."/".$i.".php",$new_info,"w");

$info2=$temp[2]."|";

$info2=explode("\n",$info2);
$info2=implode("",$info2);

writef("../".$path_soft."/".$i.".kwd",$info2,"w");

$info3="<? die(); ?>|1|".$t_limit."|".$temp[2]."|未知|".$temp[12]."|".$temp[0]."|".$temp[1]."|".$size_a[0]."|".$size_b."|".$file_type."|简体中文|".$temp[19]."|".$temp[14]."|".$temp[15]."|".$temp[20];

$info3=explode("\n",$info3);
$info3=implode("",$info3);

writef("../".$path_soft."/".$i.".dat",$info3,"w");
}
echo(" >>>>> 第 $step 次数据转换完毕… 结束ID: $end_num <br>");
if($over==0) {
$step++;
echo ("<br> >>>>> <a href=rebuild.php?action=update2&step=$step title=\"如果不能自动跳转请点击这里继续\">准备做第 $step 次数据转换，正在自动跳转中…<br>");
echo("<Meta http-equiv='Refresh' Content='2; Url=rebuild.php?action=update2&step=$step'>");
}
else 
{
echo ("<br> >>>>> <a href=rebuild.php?action=update3 title=\"如果不能自动跳转请点击这里继续\">软件数据全部转换完毕，准备转换分类数据…<br>");
writef("../".$path_soft."/number",$soft_num,"w");
echo("<Meta http-equiv='Refresh' Content='3; Url=rebuild.php?action=update3'>");

}
break;

//update3 转换分类、用户数据部分
case update3:
require("update2.x.php");
echo("分类、用户数据转换报告信息：<br><font color=red><br>");
$mainclass=@file($up_path."data/class.php");
$main_num=count($mainclass);
for($i=0;$i<$main_num;$i++)
{
unset($temp);
$temp=explode("|",$mainclass[$i]);
$new_main.=$temp[0]."|".$temp[1]."|".$temp[1]."|2006010\n";
}
writef("../include/class.php",$new_main,"w");
echo(" >>>>> 主分类转换完毕，继续转换子分类… <br>");

$subclass=@file($up_path."data/nclass.php");
$sub_num=count($subclass);
for($j=0;$j<$sub_num;$j++)
{
unset($temp);
$temp=explode("|",$subclass[$j]);
$new_sub.=$temp[1]."|".$temp[0]."|".$temp[2]."|".$temp[2]."|2006010\n";
}
writef("../include/subclass.php",$new_sub,"w");

echo(" >>>>> 子分类转换完毕，继续转换用户数据… <br>");
//删除所有用户数据
$handle=opendir("../".$path_user);
while ($file = readdir($handle))
{if ($file!="." && $file!="..") unlink("../".$path_user."/".$file);}
closedir($handle); 
unset($file);
//开始转换
$handle_user=opendir($up_path."data/user");
$user=0;
if($user_admin=="") $user_admin="admin";
while ($file = readdir($handle_user))
{
unset($newinfo1);unset($newinfo2);
if ($file!="." && $file!=".." && $file!=$user_admin.".php") 
{
unset($tmp);
$tmp=readf($up_path."data/user/".$file);
$tmp=explode("|",$tmp);
$newinfo1="<? die;?>|".$tmp[1]."|".$tmp[2]."|2|10|1";
$newinfo2="<? die;?>|none@domain.com|0|||http://|这家伙很懒，什么东东都没留下…|";
writef("../".$path_user."/".$tmp[1].".php",$newinfo1,"w");
writef("../".$path_user."/".$tmp[1].".dat",$newinfo2,"w");
$user++;
}
}
closedir($handle_user); 

unset($tmp);unset($newinfo1);unset($newinfo2);
$tmp=readf($up_path."data/user/".$user_admin.".php");
$tmp=explode("|",$tmp);
$newinfo1="<? die;?>|".$tmp[1]."|".$tmp[2]."|1|500|100";
$newinfo2="<? die;?>|admin@domain.com|0|||http://|这家伙很懒，什么东东都没留下…|";
writef("../".$path_user."/".$tmp[1].".php",$newinfo1,"w");
writef("../".$path_user."/".$tmp[1].".dat",$newinfo2,"w");
$user++;
writef("../".$path_user."/number",$user,"w");

echo(" >>>>> 用户数据转换完毕，共 $user 个用户被正确转换… <br>");

if(!unlink("update2.x.php")) 
echo(" >>>>> 请手动删除临时文件 update2.x.php ，该文件位于admin目录中… <br>");
else 
echo(" >>>>> 临时文件 update2.x.php 删除完毕… <br>");
weblog("缓存管理","数据库成功从小飞熊下载系统2.x升级","green",$yourname,"触发页面：rebuild.php");
echo ("<br> >>>>> <a href=rebuild.php?action=soft_list title=\"如果不能自动跳转请点击这里继续\">所有数据全部转换完毕，准备更新软件列表…<br>");
echo("<Meta http-equiv='Refresh' Content='5; Url=rebuild.php?action=soft_list'>");
break;


case top10:

echo ("该过程视软件数量而定需要一定时间，中途请不要刷新或者关闭该页，程序完成后会自动返回。<br>");

$c_soft=0;
$handle_click=opendir("../".$path_soft."/click");
while ($file = readdir($handle_click))
{
unset($t_dnt);
$t_dnt=explode(".",$file);
if ($file!="." && $file!=".." && $t_dnt[1]=="dnt")
$c_soft++;}
closedir($handle_click); 

if($c_soft>0)
{

$soft_num=readf("../".$path_soft."/number");
unset($dnt);
for($fn=1;$fn<=$soft_num;$fn++)
{
if(!file_exists("../".$path_soft."/click/".$fn.".dnt")) $dnt[$fn]=0;
else $dnt[$fn]=readf("../".$path_soft."/click/".$fn.".dnt");
}
arsort($dnt);
unset($newitem);
$l=0;
for(reset($dnt);$key=key($dnt);next($dnt))
{
$l++;
if($l>11) break;
if($dnt[$key]==0) break;
unset($tempx);
$tempx=readf("../".$path_soft."/".$key.".dat");
$tempx=explode("|",$tempx);
$newitem.=$key."|".$tempx[3]."|".$tempx[2]."|".$tempx[6]."|".$tempx[7]."|".$tempx[5]."\n";
}
writef("../cache/top_soft.php",$newitem,"w");
}
else 
writef("../cache/top_soft.php","","w");

$c_news=0;
$handle_click_news=opendir("../".$path_news."/click");
while ($file_news = readdir($handle_click_news))
{
if ($file_news!="." && $file_news!="..")
$c_news++;}
closedir($handle_click_news); 

if($c_news>0)
{
$news_num=readf("../".$path_news."/number");
unset($dnt_news);
for($fn_news=1;$fn_news<=$news_num;$fn_news++)
{
if(!file_exists("../".$path_news."/click/".$fn_news.".brt")) $dnt_news[$fn_news]=0;
else $dnt_news[$fn_news]=readf("../".$path_news."/click/".$fn_news.".brt");
}
arsort($dnt_news);
unset($newitem_news);
$l=0;
for(reset($dnt_news);$key_news=key($dnt_news);next($dnt_news))
{
$l++;
if($l>11) break;
if($dnt_news[$key_news]==0) break;
unset($tempx);
$tempx=readf("../".$path_news."/".$key_news.".php");
$tempx=explode("|",$tempx);
$newitem_news.=$key_news."|".$tempx[3]."|".$tempx[2]."|".$tempx[4]."|".$tempx[5]."\n";
}
writef("../cache/top_news.php",$newitem_news,"w");
}
else 
writef("../cache/top_news.php","","w");

weblog("缓存管理","首页TOP10重建完毕！","green",$yourname,"触发页面：rebuild.php");

if($c_news>0) $c_job=" 最热文章TOP10";
if($c_soft>0) $c_job.=" 软件下载TOP10";
if($c_soft==0 && $c_news==0) $c_job=" 无制定任务";
echo ("<br> >>>>> <a href=rebuild.php title=\"如果不能自动跳转请点击这里\">重建$c_job 完成，正在自动返回中…</a></font>");
echo("<Meta http-equiv='Refresh' Content='2; Url=rebuild.php'>");
break;


echo("</body>");

default:
$act="?".$action;
$msg_="重要信息";
$msg_color="#FF8C1A";
require("msg.php");
print <<<EOT
<SCRIPT language=javascript>
<!--
function gotourl(oburl)  {
	var oburl;
 this.location=oburl;
}
var t=0;
-->
</SCRIPT>
<link href="images/css.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.massage{color:#993399;
cursor:help;
text-decoration:none;}
.subtitle{
color:#3300FF;
font-family:"宋体";
font-size:12px;
font-weight:bold;}
-->
</style>
<body bgcolor="#DDF1FF">
<table width="750" border="1" align="center" cellpadding=4 cellspacing=0 bordercolor="#ACC1FC" heoght=400>
  <tr bgcolor='#ACC1FC'>
    <td colspan="3"><a class="title">欢迎您：$yourname 登陆管理程序</a></td>
  </tr>
  <tr bgcolor='#FFFFFF'>
    <td colspan="3" bgcolor="#EBE9ED" class="comments-title">扩展功能--&gt;缓存管理</td>
  </tr>
  	 <tr bgcolor='#FFFFFF'>
  	   <td width="148" height="25" align="center" class="subtitle">重建项目</td>
       <td width="479" align="center" class="subtitle">用途说明</td>
       <td width="91" align="center" class="subtitle">确认重建</td>
  	 </tr>
  	 <tr bgcolor='#FFFFFF'>
  	   <td height="30"><strong>1、重建软件列表(常用)</strong></td>
       <td>出现首页或分类页中软件数据与实际数据不符；后台管理软件中列表不符。</td>
       <td align="center"><input name="Submit1" type="button" id="Submit1" onClick="gotourl('rebuild.php?action=soft_list');" value="开始重建"></td>
  	 </tr>
  	 <tr bgcolor='#FFFFFF'>
  	   <td height="30"><strong>2、重建文章列表(常用)</strong></td>
       <td>出现首页或分类页中文章数据与实际数据不符；后台管理文章中列表不符。</td>
       <td align="center"><input name="Submit2" type="button" id="Submit2" onClick="gotourl('rebuild.php?action=news_list');" value="开始重建"></td>
  	 </tr>
  	 <tr bgcolor='#FFFFFF'>
  	   <td height="30"><strong>3、重建首页TOP10</strong></td>
       <td>首页软件下载/最热文章TOP10信息没有即时更新，请使用该功能。</td>
       <td align="center"><input name="Submit3" type="button" id="Submit3" onClick="gotourl('rebuild.php?action=top10');" value="开始重建"></td>
  	 </tr>

  	 <tr bgcolor='#FFFFFF'>
  	   <td height="40"><strong>*、数据库初始化</strong></td>
       <td>该功能会将清除所有软件、用户、分类等数据信息，将系统恢复为刚刚安装时的状态。<br>(<font color=red>该功能请务必谨慎使用</font>)</td>
       <td align="center"><input name="Submit4" type="button" id="Submit4"  value=" 初始化 " onClick="t=t+1;if (t<=1){alert('笨笨熊提醒您：这样做很危险，您真的想要清空所有数据吗？我只提醒你一次哦～'); return false;}if(t>=2)gotourl('rebuild.php?action=reset');"/></td>
  </tr>
  	 <tr bgcolor='#FFFFFF'>
  	   <td height="25" colspan="3" align="center">&nbsp;</td>
  </tr>
</table>

EOT;
require("footer.php");
break;

}
}
?>